package com.reservation.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.reservation.entity.Message;

import java.util.List;

/**
 * 留言服务接口
 */
public interface MessageService {
    
    /**
     * 添加留言
     *
     * @param message 留言信息
     * @return 添加成功的留言信息
     */
    Message addMessage(Message message);
    
    /**
     * 回复留言
     *
     * @param id    留言ID
     * @param reply 回复内容
     * @return 更新后的留言信息
     */
    Message replyMessage(Long id, String reply);
    
    /**
     * 获取留言详情
     *
     * @param id 留言ID
     * @return 留言信息
     */
    Message getMessageById(Long id);
    
    /**
     * 删除留言
     *
     * @param id 留言ID
     * @return 是否成功
     */
    boolean deleteMessage(Long id);
    
    /**
     * 分页查询留言列表
     *
     * @param page    分页参数
     * @param userId  用户ID（可选）
     * @param content 留言内容（可选）
     * @param hasReply 是否已回复（可选）
     * @return 留言列表
     */
    IPage<Message> getMessageList(Page<Message> page, Long userId, String content, Boolean hasReply);
    
    /**
     * 获取用户的所有留言
     *
     * @param userId 用户ID
     * @return 留言列表
     */
    List<Message> getUserMessages(Long userId);
    
    /**
     * 获取最新的留言
     *
     * @param limit 限制数量
     * @return 留言列表
     */
    List<Message> getLatestMessages(int limit);
}